home *** CD-ROM | disk | FTP | other *** search
/ iBrowse Update Disc / iBrowse Update Disc.iso / distrib / man / Manuals / Timecode / PRM < prev    next >
Text File  |  1998-02-26  |  52KB  |  970 lines

  1. <HTML>
  2. <HEAD>
  3. <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
  4. <TITLE>Acorn TimeCode Programmer's Guide</TITLE>
  5.  
  6. <META NAME="GENERATOR" CONTENT="Internet Assistant for Microsoft Word 2.04z">
  7. </HEAD>
  8. <BODY BGCOLOR="#ffffff">
  9. <A HREF="USERGUIDE"><IMG SRC="pics/PREV" HEIGHT="28" WIDTH="96" BORDER="0"></A>
  10. <A HREF="FRONT"><IMG SRC="pics/FRONT" HEIGHT="28" WIDTH="96" BORDER="0"></A> <A HREF="CONTENTS"><IMG SRC="pics/CONTS" HEIGHT="28" WIDTH="96" BORDER="0"></A>
  11. <P>
  12. <H1>2. Acorn TimeCode Programmer's Guide <A NAME="Top"></A><A HREF="Prm.HTM#Top" ></A>
  13. </H1>
  14. <HR>
  15. <P>
  16. <FONT SIZE=3>Please refer to <A HREF="#Data">Data Formats</A>
  17. for an explanation of the data structures described as register
  18. parameters in this section. </FONT>
  19. <H1>Programmer's <A NAME="Interface">Interface</A>
  20. </H1>
  21. <H2><A NAME="TimeShareV">TimeShareV</A> </H2>
  22. <P>
  23. <FONT SIZE=3>TimeShareV is vector number &27. </FONT>
  24. <H3>TimeShareV entry for a recurrent schedule </H3>
  25. <P>
  26. <FONT SIZE=3>R0 = b31:b8 flags, b7:b0 reason code (reason code
  27. = 0) <BR>
  28. R1 = new time data word </FONT>
  29. <P>
  30. <FONT SIZE=3>Any clients interested in this call should use their
  31. interrupt schedule handle as a pointer to a word which they check
  32. for bit 30 being set. If it is, this indicates that this client
  33. is one of those who requested a vector call at this time. </FONT>
  34. <P>
  35. <FONT SIZE=3>Always pass this vector on. </FONT>
  36. <H3>TimeShareV entry for time modified </H3>
  37. <P>
  38. <FONT SIZE=3>R0 = b31:b8 flags, b7:b0 reason code (reason code
  39. = 1) <BR>
  40. R1 = number of requesters of this call
  41. <BR>R2 = new time data word
  42. </FONT>
  43. <P>
  44. <FONT SIZE=3>Each client should decrement R1. When R1 reaches
  45. 0 the call should be claimed. </FONT>
  46. <H2><A NAME="Messages">Wimp Messages</A> </H2>
  47. <P>
  48. <FONT SIZE=3>The WimpMessage number is the same as the SWI base,
  49. i.e. &4B540. </FONT>
  50. <H3>WimpMessage_TimeShare </H3>
  51. <P>
  52. <FONT SIZE=3>block <BR>
  53. +16 Message number (TimeShare_SWIBase) <BR>
  54. +20 subreason </FONT>
  55. <H4>Subreason 0 - TimeShare system component dying/starting </H4>
  56. <P>
  57. <FONT SIZE=3>+20 0 <BR>
  58. +24 flags (as R0 of service) <BR>
  59. +28 Clock/Clock Transmitter number, or 0 </FONT>
  60. <P>
  61. <FONT SIZE=3>(This is sent by the TimeShare module upon receipt
  62. of the service call, or with foreknowledge of its own death, to
  63. inform any applications about the change in system status. Note
  64. that TimeShare will not be an active wimp task - so this message
  65. will be sent as an unrecorded broadcast. You should not acknowledge
  66. the message, since this would stop any other interested clients
  67. receiving it). </FONT>
  68. <P>
  69. <FONT SIZE=3>Any programs which receive this call, and have been
  70. using the facility provided by TimeShare_ReadTimeAddress, should
  71. call TimeShare_Deregister to acknowledge that they will not read
  72. memory directly any more. </FONT>
  73. <P>
  74. <FONT SIZE=3>TimeShare will only die if it has no outstanding
  75. clients of the time data word's address once this wimp message
  76. and the service call have been sent. </FONT>
  77. <H4>Subreason 1 - Clock(Transmitter)Control SWI called by application
  78. </H4>
  79. <P>
  80. <FONT SIZE=3>+20 1 <BR>
  81. +24 SWI number (_ClockControl or _ClockTransmitterControl) <BR>
  82. +28 R0 of SWI <BR>
  83. +32 R2 of SWI <BR>
  84. +36 R3 of SWI (or 0 if R3 not used) </FONT>
  85. <P>
  86. <FONT SIZE=3>This message should be broadcast by any application
  87. (or module code) after calling SWI _ClockControl or SWI _ClockTransmitterControl
  88. successfully to change the timecode system configuration (if the
  89. SWI call fails due to an error then the message should not be
  90. sent). Note that it is <B>not</B> automatically generated by the
  91. TimeShare module. </FONT>
  92. <P>
  93. <FONT SIZE=3>This message is intended to allow applications which
  94. show the status of the system (e.g. !TimeShare) to update their
  95. displays - they may either take the information in the message
  96. and act on it directly, or use the message as a cue to interrogate
  97. the environment again. The message does not need to be sent for
  98. ClockControl subreason 5 - Set Clock, since any monitoring applications
  99. will see the change in the time anyway. </FONT>
  100. <H2>Wimp <A NAME="Pollword">Pollword </A></H2>
  101. <P>
  102. <FONT SIZE=3>Since it's possible that an application may want
  103. to have more than one pollword routine scheduled, the value stored
  104. in the nominated pollword to make it non-zero will be the interrupt
  105. schedule handle returned when it was scheduled. </FONT>
  106. <H2><A NAME="SWI">SWI</A> calls </H2>
  107. <P>
  108. <FONT SIZE=3>The SWI call chunk begins at &4B540, with errors
  109. in a block starting at &80DD00. </FONT>
  110. <P>
  111. <FONT SIZE=3>All SWIs are marked with b7:b0 for internal use.
  112. </FONT>
  113. <H3>TimeShare_ReadCurrentClock (TimeShare_SWIBase + &00) 
  114. </H3>
  115.  
  116. <TABLE>
  117. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>In</FONT></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R0=</FONT>
  118. </TD><TD VALIGN="TOP" WIDTH=473><FONT SIZE=3>b31:b8 flags - none defined, all bits reserved <BR>
  119. b7:b0 - for internal use, set to 0</FONT>
  120. </TD></TR>
  121. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>Out</FONT></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R0=</FONT>
  122. </TD><TD VALIGN="TOP" WIDTH=473><FONT SIZE=3>-1 for no current clock, or number of current clock source: <BR>
  123. 0 Internal <BR>
  124. 1 MIDI <BR>
  125. 2 (and above) reserved </FONT>
  126. </TD></TR>
  127. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R1=</FONT></TD>
  128. <TD VALIGN="TOP" WIDTH=473><FONT SIZE=3>0 if no current clock, or frame rate identifier giving current input fps rate (no flag bits set) </FONT>
  129. </TD></TR>
  130. </TABLE>
  131. <P>
  132. <FONT SIZE=3> Note: This number applies to both the Clock and
  133. Clock Transmitter aspects of a given transport medium, even though
  134. both may not exist. </FONT>
  135. <P>
  136. <B><FONT SIZE=3>Errors</FONT></B><FONT SIZE=3>: A Clock or Clock
  137. Transmitter has too high an identity number </FONT>
  138. <H3>TimeShare_ReadActiveClockTransmitters (TimeShare_SWIBase +
  139. &01) </H3>
  140.  
  141. <TABLE>
  142. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>In</FONT></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R0 = </FONT>
  143. </TD><TD VALIGN="TOP" WIDTH=210><FONT SIZE=3>b31:b8 flags - none defined, all bits reserved </FONT>
  144. </TD><TD VALIGN="TOP" WIDTH=262></TD></TR>
  145. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47></TD><TD VALIGN="TOP" WIDTH=210><FONT SIZE=3>b7:b0 - for internal use, set to 0 </FONT>
  146. </TD><TD VALIGN="TOP" WIDTH=262></TD></TR>
  147. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>Out</FONT></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R0 => </FONT>
  148. </TD><TD VALIGN="TOP" WIDTH=210><FONT SIZE=3>read-only data stucture </FONT>
  149. </TD><TD VALIGN="TOP" WIDTH=262></TD></TR>
  150. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47></TD><TD VALIGN="TOP" WIDTH=210><FONT SIZE=3>0</FONT>
  151. </TD><TD VALIGN="TOP" WIDTH=262><FONT SIZE=3>number of words following in structure </FONT>
  152. </TD></TR>
  153. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47></TD><TD VALIGN="TOP" WIDTH=210><FONT SIZE=3>4</FONT>
  154. </TD><TD VALIGN="TOP" WIDTH=262><FONT SIZE=3>bit field for clock transmitters 0-31 (bit 0 = CT 0) </FONT>
  155. </TD></TR>
  156. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47></TD><TD VALIGN="TOP" WIDTH=210><FONT SIZE=3>8</FONT>
  157. </TD><TD VALIGN="TOP" WIDTH=262><FONT SIZE=3>bit field for clock transmitters 32-63 (bit 0 = CT 32) etc. </FONT>
  158. </TD></TR>
  159. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47></TD><TD VALIGN="TOP" WIDTH=210><FONT SIZE=3>A bit clear = inactive
  160. <BR>
  161. A bit set = active </FONT>
  162. </TD><TD VALIGN="TOP" WIDTH=262></TD></TR>
  163. </TABLE>
  164. <P>
  165. <FONT SIZE=3>This structure may only be modified by the TimeShare
  166. module. </FONT>
  167. <P>
  168. <B><FONT SIZE=3>Errors</FONT></B><FONT SIZE=3>: A Clock or Clock
  169. Transmitter has too high an identity number </FONT>
  170. <H3>TimeShare_ReadAvailableClocks (TimeShare_SWIBase + &02)
  171. </H3>
  172.  
  173. <TABLE>
  174. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>In</FONT></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R0 = </FONT>
  175. </TD><TD VALIGN="TOP" WIDTH=208><FONT SIZE=3>b31:b8 flags - none defined, all bits reserved </FONT>
  176. </TD><TD VALIGN="TOP" WIDTH=265></TD></TR>
  177. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47></TD><TD VALIGN="TOP" WIDTH=208><FONT SIZE=3>b7:b0 - for internal use, set to 0 </FONT>
  178. </TD><TD VALIGN="TOP" WIDTH=265></TD></TR>
  179. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>Out</FONT></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R0 => </FONT>
  180. </TD><TD VALIGN="TOP" WIDTH=208><FONT SIZE=3>read-only data structure </FONT>
  181. </TD><TD VALIGN="TOP" WIDTH=265></TD></TR>
  182. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47></TD><TD VALIGN="TOP" WIDTH=208><FONT SIZE=3>0</FONT>
  183. </TD><TD VALIGN="TOP" WIDTH=265><FONT SIZE=3>number of words following in structure </FONT>
  184. </TD></TR>
  185. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47></TD><TD VALIGN="TOP" WIDTH=208><FONT SIZE=3>4</FONT>
  186. </TD><TD VALIGN="TOP" WIDTH=265><FONT SIZE=3>bit field for clocks 0-31 (bit 0 = CK 0) </FONT>
  187. </TD></TR>
  188. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47></TD><TD VALIGN="TOP" WIDTH=208><FONT SIZE=3>8</FONT>
  189. </TD><TD VALIGN="TOP" WIDTH=265><FONT SIZE=3>bit field for clocks 32-63 (bit 0 = CK 32) etc </FONT>
  190. </TD></TR>
  191. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47></TD><TD VALIGN="TOP" WIDTH=208><FONT SIZE=3>A bit clear = not present
  192. <BR>
  193. A bit set = present </FONT>
  194. </TD><TD VALIGN="TOP" WIDTH=265></TD></TR>
  195. </TABLE>
  196. <P>
  197. <FONT SIZE=3>This structure may only be modified by the TimeShare
  198. module. </FONT>
  199. <P>
  200. <FONT SIZE=3>Errors: A Clock or Clock Transmitter has too high
  201. an identity number </FONT>
  202. <H3>TimeShare_ReadAvailableClockTransmitters (TimeShare_SWIBase
  203. + &03) </H3>
  204.  
  205. <TABLE>
  206. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>In</FONT></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R0 = </FONT>
  207. </TD><TD VALIGN="TOP" WIDTH=208><FONT SIZE=3>b31:b8 flags - none defined, all bits reserved </FONT>
  208. </TD><TD VALIGN="TOP" WIDTH=265></TD></TR>
  209. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47></TD><TD VALIGN="TOP" WIDTH=208><FONT SIZE=3>b7:b0 - for internal use, set to 0 </FONT>
  210. </TD><TD VALIGN="TOP" WIDTH=265></TD></TR>
  211. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>Out</FONT></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R0 => </FONT>
  212. </TD><TD VALIGN="TOP" WIDTH=208><FONT SIZE=3>read-only data structure </FONT>
  213. </TD><TD VALIGN="TOP" WIDTH=265></TD></TR>
  214. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47></TD><TD VALIGN="TOP" WIDTH=208><FONT SIZE=3>0</FONT>
  215. </TD><TD VALIGN="TOP" WIDTH=265><FONT SIZE=3>number of words following in structure </FONT>
  216. </TD></TR>
  217. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47></TD><TD VALIGN="TOP" WIDTH=208><FONT SIZE=3>4</FONT>
  218. </TD><TD VALIGN="TOP" WIDTH=265><FONT SIZE=3>bit field for clocks 0-31 (bit 0 = CT 0) </FONT>
  219. </TD></TR>
  220. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47></TD><TD VALIGN="TOP" WIDTH=208><FONT SIZE=3>8</FONT>
  221. </TD><TD VALIGN="TOP" WIDTH=265><FONT SIZE=3>bit field for clocks 32-63 (bit 0 = CT 32) etc </FONT>
  222. </TD></TR>
  223. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47></TD><TD VALIGN="TOP" WIDTH=208><FONT SIZE=3>A bit clear = not present</FONT>
  224. </TD><TD VALIGN="TOP" WIDTH=265></TD></TR>
  225. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47></TD><TD VALIGN="TOP" WIDTH=208><FONT SIZE=3>A bit set = present </FONT>
  226. </TD><TD VALIGN="TOP" WIDTH=265></TD></TR>
  227. </TABLE>
  228. <P>
  229. <FONT SIZE=3>This structure may only be modified by the TimeShare
  230. module. </FONT>
  231. <P>
  232. <FONT SIZE=3>Errors: none </FONT>
  233. <H3>TimeShare_InterruptSchedule (TimeShare_SWIBase + &04)
  234. </H3>
  235.  
  236. <TABLE>
  237. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>In</FONT></TD><TD VALIGN="TOP" WIDTH=66><FONT SIZE=3>R0 = </FONT>
  238. </TD><TD VALIGN="TOP" WIDTH=454><FONT SIZE=3>b31: set - this is a high priority interrupt </FONT>
  239. </TD></TR>
  240. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=66></TD><TD VALIGN="TOP" WIDTH=454><FONT SIZE=3>b30:b29 flags - reserved (internal use) </FONT>
  241. </TD></TR>
  242. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=66></TD><TD VALIGN="TOP" WIDTH=454><FONT SIZE=3>b28: set - this is a one-shot interrupt </FONT>
  243. </TD></TR>
  244. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=66></TD><TD VALIGN="TOP" WIDTH=454><FONT SIZE=3>b27:b8 flags - none defined, all bits reserved </FONT>
  245. </TD></TR>
  246. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=66></TD><TD VALIGN="TOP" WIDTH=454><FONT SIZE=3>b7:b0 - for internal use, set to 0 </FONT>
  247. </TD></TR>
  248. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=66><FONT SIZE=3>R1 = </FONT></TD>
  249. <TD VALIGN="TOP" WIDTH=454><FONT SIZE=3>0, or interrupt schedule handle to modify </FONT>
  250. </TD></TR>
  251. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=66><FONT SIZE=3>R2 = </FONT></TD>
  252. <TD VALIGN="TOP" WIDTH=454><FONT SIZE=3>interrupt rate in 0.5uS (Timer1 ticks), minimum is 0.5555ms, maximum is &FFFFFFF. 0 cancels the schedule </FONT>
  253. </TD></TR>
  254. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=66><FONT SIZE=3>R3 = </FONT></TD>
  255. <TD VALIGN="TOP" WIDTH=454><FONT SIZE=3>data word to associate with this schedule slot (see interrupt and timecodeV call specs for usage) </FONT>
  256. </TD></TR>
  257. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=66><FONT SIZE=3>R4 = </FONT></TD>
  258. <TD VALIGN="TOP" WIDTH=454><FONT SIZE=3>address to call </FONT></TD></TR>
  259. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>Out</FONT></TD><TD VALIGN="TOP" WIDTH=66><FONT SIZE=3>(success) </FONT>
  260. </TD><TD VALIGN="TOP" WIDTH=454></TD></TR>
  261. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=66><FONT SIZE=3>R1 = </FONT></TD>
  262. <TD VALIGN="TOP" WIDTH=454><FONT SIZE=3>interrupt schedule handle allocated or quoted </FONT>
  263. </TD></TR>
  264. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=66><FONT SIZE=3>R0 </FONT></TD>
  265. <TD VALIGN="TOP" WIDTH=454><FONT SIZE=3>(b31:b8), R2 - R4 preserved </FONT>
  266. </TD></TR>
  267. </TABLE>
  268. <P>
  269. <B><FONT SIZE=3>Errors</FONT></B><FONT SIZE=3>: R0 points to error
  270. block, R1-R4 preserved </FONT>
  271. <P>
  272. <FONT SIZE=3>Invalid Interrupt Schedule Handle <BR>
  273. Outside range, or not active for modification <BR>
  274. Interrupt rate is out of range <BR>
  275. Too fast, or too slow <BR>
  276. Interrupt Schedule List Full </FONT>
  277. <P>
  278. <B><FONT SIZE=3>Notes</FONT></B><FONT SIZE=3>: Calling with R1=0
  279. and R2=0 is invalid, and will produce an Invalid Interrupt Schedule
  280. Handle error on the assumption that cancelling an interrupt is
  281. the intended result. </FONT>
  282. <P>
  283. <FONT SIZE=3>The Interrupt Schedule Handle should be regarded
  284. as a pointer to a flags word which may be interrogated under certain
  285. situations (primarily within a vector routine to check whether
  286. you are one of the clients this particular vector call is intended
  287. for). It should not be modified in any way. </FONT>
  288. <P>
  289. <FONT SIZE=3>This call can be used to change the rate of a running
  290. interrupt. </FONT>
  291. <P>
  292. <FONT SIZE=3>The high priority bit should <B>only</B> be set for
  293. interrupts which are to be used to update the TimeShare time data
  294. word (i.e. Clocks). </FONT>
  295. <P>
  296. <FONT SIZE=3>This bit is used by the interrupt scheduler to ensure
  297. that when two or more scheduled events occur together the most
  298. important one gets called first (e.g. updating the time data word
  299. before other interrupts to send it). </FONT>
  300. <P>
  301. <FONT SIZE=3>A one-shot interrupt will trigger once, after the
  302. interval specified as the interrupt rate and then to deactivate
  303. itself. There is no need to cancel a one-shot interrupt - the
  304. cancellation is automatic when it triggers. </FONT>
  305. <H3>TimeShare_PollWordSchedule (TimeShare_SWIBase + &05) 
  306. </H3>
  307.  
  308. <TABLE>
  309. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>In</FONT></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R0 = </FONT>
  310. </TD><TD VALIGN="TOP" WIDTH=473><FONT SIZE=3>b31:b8 flags - none defined, all bits reserved </FONT>
  311. </TD></TR>
  312. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47></TD><TD VALIGN="TOP" WIDTH=473><FONT SIZE=3>b7:b0 - for internal use, set to 0 </FONT>
  313. </TD></TR>
  314. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R1: </FONT></TD>
  315. <TD VALIGN="TOP" WIDTH=473><FONT SIZE=3>0, or interrupt schedule handle to modify </FONT>
  316. </TD></TR>
  317. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R2: </FONT></TD>
  318. <TD VALIGN="TOP" WIDTH=473><FONT SIZE=3>interrupt rate in 0.5uS (Timer 1 ticks), limits as above </FONT>
  319. </TD></TR>
  320. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R3: </FONT></TD>
  321. <TD VALIGN="TOP" WIDTH=473><FONT SIZE=3>address of pollword </FONT></TD></TR>
  322. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>Out</FONT></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R1: </FONT>
  323. </TD><TD VALIGN="TOP" WIDTH=473><FONT SIZE=3>interrupt handle schedule allocated or preserved </FONT>
  324. </TD></TR>
  325. </TABLE>
  326. <P>
  327. <B><FONT SIZE=3>Notes</FONT></B><FONT SIZE=3>:Errors and notes
  328. as above </FONT>
  329. <H3>TimeShare_TimeShareVSchedule (TimeShare_SWIBase + &06)
  330. </H3>
  331. <P>
  332. <FONT SIZE=3>(To schedule a recurrent call) </FONT>
  333. <TABLE>
  334. <TR><TD VALIGN="TOP" WIDTH=83><FONT SIZE=3>In</FONT></TD><TD VALIGN="TOP" WIDTH=44><FONT SIZE=3>R0 = </FONT>
  335. </TD><TD VALIGN="TOP" WIDTH=438><FONT SIZE=3>b31:b8 flags - none defined, all bits reserved </FONT>
  336. </TD></TR>
  337. <TR><TD VALIGN="TOP" WIDTH=83></TD><TD VALIGN="TOP" WIDTH=44></TD><TD VALIGN="TOP" WIDTH=438><FONT SIZE=3>b7:b0 - for internal use, set to 0 </FONT>
  338. </TD></TR>
  339. <TR><TD VALIGN="TOP" WIDTH=83></TD><TD VALIGN="TOP" WIDTH=44><FONT SIZE=3>R1: </FONT></TD>
  340. <TD VALIGN="TOP" WIDTH=438><FONT SIZE=3>0, or interrupt schedule handle to modify </FONT>
  341. </TD></TR>
  342. <TR><TD VALIGN="TOP" WIDTH=83></TD><TD VALIGN="TOP" WIDTH=44><FONT SIZE=3>R2: </FONT></TD>
  343. <TD VALIGN="TOP" WIDTH=438><FONT SIZE=3>interrupt rate in 0.5uS (Timer 1 ticks), limits as above </FONT>
  344. </TD></TR>
  345. </TABLE>
  346. <P>
  347. <FONT SIZE=3>(To request a TimeShareV call on each update) </FONT>
  348. <TABLE>
  349. <TR><TD VALIGN="TOP" WIDTH=83><FONT SIZE=3>In</FONT></TD><TD VALIGN="TOP" WIDTH=44><FONT SIZE=3>R1: </FONT>
  350. </TD><TD VALIGN="TOP" WIDTH=438><FONT SIZE=3>-1 </FONT></TD></TR>
  351. <TR><TD VALIGN="TOP" WIDTH=83></TD><TD VALIGN="TOP" WIDTH=44><FONT SIZE=3>R2: </FONT></TD>
  352. <TD VALIGN="TOP" WIDTH=438><FONT SIZE=3>-1 to request, 0 to remove request</FONT>
  353. </TD></TR>
  354. <TR><TD VALIGN="TOP" WIDTH=83><FONT SIZE=3>Out
  355. <BR>
  356. (recurrent call)</FONT>
  357. </TD><TD VALIGN="TOP" WIDTH=44>R1: </TD><TD VALIGN="TOP" WIDTH=438><FONT SIZE=3>interrupt handle schedule allocated or preserved </FONT>
  358. </TD></TR>
  359. <TR><TD VALIGN="TOP" WIDTH=83><FONT SIZE=3>(each update)</FONT></TD><TD VALIGN="TOP" WIDTH=44><FONT SIZE=3> R1:</FONT>
  360. </TD><TD VALIGN="TOP" WIDTH=438><FONT SIZE=3>number of requests currently made</FONT>
  361. </TD></TR>
  362. </TABLE>
  363. <P>
  364. <FONT SIZE=3> </FONT>
  365. <P>
  366. <B><FONT SIZE=3>Notes</FONT></B><FONT SIZE=3>: The call on each
  367. update facility does not provide individual identification of
  368. the originator since one call to TimeShareV is made for all requests.
  369. </FONT>
  370. <P>
  371. <FONT SIZE=3>Similarly, multiple recurrent schedules firing at
  372. the same time will also result in only one call - vector claimants
  373. should use their interrupt schedule handle as a pointer to a flags
  374. word to check to see whether bit 30 is set. </FONT>
  375. <H3>TimeShare_ClockTransmitterControl (TimeShare_SWIBase
  376. + &07) </H3>
  377. <FONT SIZE=3>
  378. <TABLE>
  379. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>In</FONT></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R0 = </FONT>
  380. </TD><TD VALIGN="TOP" WIDTH=473><FONT SIZE=3>b31:b8 flags - none defined, all bits reserved </FONT>
  381. </TD></TR>
  382. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47></TD><TD VALIGN="TOP" WIDTH=473><FONT SIZE=3>b7:b0 - for internal use, set to 0 </FONT>
  383. </TD></TR>
  384. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R2: </FONT></TD>
  385. <TD VALIGN="TOP" WIDTH=473><FONT SIZE=3>Frame rate identifier, or 0 to disable, or -1 to read current frame rate</FONT>
  386. </TD></TR>
  387. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R3: </FONT></TD>
  388. <TD VALIGN="TOP" WIDTH=473><FONT SIZE=3>Clock Transmitter number </FONT>
  389. </TD></TR>
  390. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>Out</FONT></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R2: </FONT>
  391. </TD><TD VALIGN="TOP" WIDTH=473><FONT SIZE=3>returns frame rate identifier if R2=-1 on entry, otherwise all registers preserved unless an error is returned.</FONT>
  392. </TD></TR>
  393. </TABLE>
  394. <P>
  395. <B><FONT SIZE=3>Errors</FONT></B><FONT SIZE=3>: Clock Transmitter
  396. not present <BR>
  397. Clock Transmitter does not support this frame rate <BR>
  398. Clock Transmitter was not active </FONT>
  399. <P>
  400. <B><FONT SIZE=3>Notes</FONT></B><FONT SIZE=3>: A frame rate identifier
  401. is: </FONT>
  402. <TABLE>
  403. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>bit31: </FONT></TD><TD VALIGN="TOP" WIDTH=482><FONT SIZE=3>set: drop frame </FONT>
  404. </TD></TR>
  405. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>bit30: </FONT></TD><TD VALIGN="TOP" WIDTH=482><FONT SIZE=3>set: this is lowest frame rate possible </FONT>
  406. </TD></TR>
  407. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>bit29: </FONT></TD><TD VALIGN="TOP" WIDTH=482><FONT SIZE=3>set: this is highest frame rate possible </FONT>
  408. </TD></TR>
  409. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>bit28: </FONT></TD><TD VALIGN="TOP" WIDTH=482><FONT SIZE=3>set: this is not a rate, but fully variable from 0.5 to 1800fps </FONT>
  410. </TD></TR>
  411. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>bit27:</FONT></TD><TD VALIGN="TOP" WIDTH=482><FONT SIZE=3>count down (Internal clock only) </FONT>
  412. </TD></TR>
  413. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>bit26: </FONT></TD><TD VALIGN="TOP" WIDTH=482><FONT SIZE=3>Add 0.97fps (for 29.97fps) </FONT>
  414. </TD></TR>
  415. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>bit25-bit11: </FONT></TD><TD VALIGN="TOP" WIDTH=482><FONT SIZE=3>reserved, set to 0 </FONT>
  416. </TD></TR>
  417. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>bit10-bit1: </FONT></TD><TD VALIGN="TOP" WIDTH=482><FONT SIZE=3>frame rate, max 1800, min 0.5 (with bit 0 set) </FONT>
  418. </TD></TR>
  419. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>bit0 :  </FONT></TD><TD VALIGN="TOP" WIDTH=482><FONT SIZE=3>set: add 0.5 fps</FONT>
  420. </TD></TR>
  421. </TABLE>
  422. <P>
  423. <FONT SIZE=3>However, bits 30,29,28 may not be set when setting
  424. a frame rate. </FONT>
  425. <P>
  426. <FONT SIZE=3>This SWI may be used to enable, and disable a Clock
  427. Transmitter, and to read or change the frame rate of a Clock Transmitter.
  428. </FONT>
  429. <H3>TimeShare_ClockControl (TimeShare_SWIBase+&08) 
  430. </H3>
  431.  
  432. <TABLE>
  433. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>In:</FONT></TD><TD VALIGN="TOP" WIDTH=38><FONT SIZE=3>R0: </FONT>
  434. </TD><TD VALIGN="TOP" WIDTH=169><FONT SIZE=3>b31:b16 flags, all 0 and reserved </FONT>
  435. </TD><TD VALIGN="TOP" WIDTH=169></TD><TD VALIGN="TOP" WIDTH=169></TD></TR>
  436. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=38></TD><TD VALIGN="TOP" WIDTH=169><FONT SIZE=3>b15:b8 action </FONT>
  437. </TD><TD VALIGN="TOP" WIDTH=169><FONT SIZE=3>0: Select (automatically deselects previous) </FONT>
  438. </TD><TD VALIGN="TOP" WIDTH=169></TD></TR>
  439. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=38></TD><TD VALIGN="TOP" WIDTH=169></TD><TD VALIGN="TOP" WIDTH=169><FONT SIZE=3>1: Deselect </FONT></TD></TR>
  440. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=38></TD><TD VALIGN="TOP" WIDTH=169></TD><TD VALIGN="TOP" WIDTH=169><FONT SIZE=3>2: Set frame rate R3 = Frame rate identifier </FONT>
  441. </TD></TR>
  442. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=38></TD><TD VALIGN="TOP" WIDTH=169></TD><TD VALIGN="TOP" WIDTH=169><FONT SIZE=3>3: Start clock </FONT></TD></TR>
  443. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=38></TD><TD VALIGN="TOP" WIDTH=169></TD><TD VALIGN="TOP" WIDTH=169><FONT SIZE=3>4: Stop clock </FONT></TD></TR>
  444. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=38></TD><TD VALIGN="TOP" WIDTH=169></TD><TD VALIGN="TOP" WIDTH=169><FONT SIZE=3>5: Set clock R3 = Time data word </FONT>
  445. </TD></TR>
  446. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=38></TD><TD VALIGN="TOP" WIDTH=169></TD><TD VALIGN="TOP" WIDTH=169><FONT SIZE=3>6: Set speed (internal clock only) R3 = Frame rate identifier </FONT>
  447. </TD></TR>
  448. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=38><FONT SIZE=3>R2: </FONT></TD>
  449. <TD VALIGN="TOP" WIDTH=169><FONT SIZE=3>Clock number </FONT></TD><TD VALIGN="TOP" WIDTH=169>
  450. </TD><TD VALIGN="TOP" WIDTH=169></TD></TR>
  451. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=38><FONT SIZE=3>R3: </FONT></TD>
  452. <TD VALIGN="TOP" WIDTH=169><FONT SIZE=3>may be used, see R0 </FONT></TD><TD VALIGN="TOP" WIDTH=169>
  453. </TD><TD VALIGN="TOP" WIDTH=169></TD></TR>
  454. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>Out</FONT></TD><TD VALIGN="TOP" WIDTH=38></TD>
  455. <TD VALIGN="TOP" WIDTH=169><FONT SIZE=3>all preserved unless an error occurs</FONT>
  456. </TD><TD VALIGN="TOP" WIDTH=169></TD><TD VALIGN="TOP" WIDTH=169></TD></TR>
  457. </TABLE>
  458. <P>
  459. <B><FONT SIZE=3>Errors</FONT></B><FONT SIZE=3>: Clock not present
  460. <BR>
  461. This is an external Clock which may not be adjusted in this manner
  462. <BR>
  463. Undefined Action number </FONT>
  464. <P>
  465. <B><FONT SIZE=3>Notes</FONT></B><FONT SIZE=3>: The automatic deselection
  466. when a select action is performed is achieved for the caller by
  467. the TimeShare module issuing a deselect action on the caller's
  468. behalf before acting on the select action. </FONT>
  469. <P>
  470. <FONT SIZE=3>Reason 6 may be used to set the Internal Clock to
  471. run at one frame rate, but to return time in another - e.g. setting
  472. a frame rate of 30fps, and setting a speed of 90 fps would result
  473. in 30fps running at 3 x real time. It is also possible to set
  474. the direction for time to run using bit 27 of the frame rate identifier.
  475. Setting a new frame rate with reason 3 cancels any effects imposed
  476. by reason 6 (i.e. the new frame rate will be running forwards
  477. at real time when the clock runs). </FONT>
  478. <P>
  479. <FONT SIZE=3>At first glance it may seem a little strange to use
  480. a Clock control interface to alter the time in the TimeShare system.
  481. This is done for several reasons. </FONT>
  482. <OL>
  483. <LI>The individual Clock module is in the best place to know whether
  484. it can support adjustments to the time 
  485. <LI>Most Clock modules have internal state to maintain, and need
  486. to know about a change 
  487. </OL>
  488.  
  489. <TABLE>
  490. <TR><TD VALIGN="TOP" WIDTH=102><FONT SIZE=3>Time data word: </FONT></TD><TD VALIGN="TOP" WIDTH=85><FONT SIZE=3>Bits 31-26</FONT>
  491. </TD><TD VALIGN="TOP" WIDTH=66></TD><TD VALIGN="TOP" WIDTH=271><FONT SIZE=3>Hours (0-23)</FONT>
  492. </TD></TR>
  493. <TR><TD VALIGN="TOP" WIDTH=102></TD><TD VALIGN="TOP" WIDTH=85><FONT SIZE=3>Bits 25-20</FONT>
  494. </TD><TD VALIGN="TOP" WIDTH=66><FONT SIZE=3> </FONT></TD><TD VALIGN="TOP" WIDTH=271><FONT SIZE=3>Minutes (0-59)</FONT>
  495. </TD></TR>
  496. <TR><TD VALIGN="TOP" WIDTH=102></TD><TD VALIGN="TOP" WIDTH=85><FONT SIZE=3>Bits 19-14</FONT>
  497. </TD><TD VALIGN="TOP" WIDTH=66><FONT SIZE=3> </FONT></TD><TD VALIGN="TOP" WIDTH=271><FONT SIZE=3>Seconds (0-59)</FONT>
  498. </TD></TR>
  499. <TR><TD VALIGN="TOP" WIDTH=102></TD><TD VALIGN="TOP" WIDTH=85><FONT SIZE=3>Bits 13-3</FONT>
  500. </TD><TD VALIGN="TOP" WIDTH=66></TD><TD VALIGN="TOP" WIDTH=271><FONT SIZE=3>Frame count (0-1799) </FONT>
  501. </TD></TR>
  502. <TR><TD VALIGN="TOP" WIDTH=102></TD><TD VALIGN="TOP" WIDTH=85><FONT SIZE=3>Bits 2</FONT>
  503. </TD><TD VALIGN="TOP" WIDTH=66></TD><TD VALIGN="TOP" WIDTH=271><FONT SIZE=3>Expanded format bit (set to 0 at present) </FONT>
  504. </TD></TR>
  505. <TR><TD VALIGN="TOP" WIDTH=102></TD><TD VALIGN="TOP" WIDTH=85><FONT SIZE=3>Bits 1-0</FONT>
  506. </TD><TD VALIGN="TOP" WIDTH=66></TD><TD VALIGN="TOP" WIDTH=271><FONT SIZE=3>Status indication </FONT>
  507. </TD></TR>
  508. <TR><TD VALIGN="TOP" WIDTH=102></TD><TD VALIGN="TOP" WIDTH=85></TD><TD VALIGN="TOP" WIDTH=66><FONT SIZE=3>Bit 1 0 </FONT>
  509. </TD><TD VALIGN="TOP" WIDTH=271></TD></TR>
  510. <TR><TD VALIGN="TOP" WIDTH=102></TD><TD VALIGN="TOP" WIDTH=85></TD><TD VALIGN="TOP" WIDTH=66><FONT SIZE=3>Bit 0 0</FONT>
  511. </TD><TD VALIGN="TOP" WIDTH=271><FONT SIZE=3>Clock incrementing normally </FONT>
  512. </TD></TR>
  513. <TR><TD VALIGN="TOP" WIDTH=102></TD><TD VALIGN="TOP" WIDTH=85></TD><TD VALIGN="TOP" WIDTH=66><FONT SIZE=3>Bit 0 1</FONT>
  514. </TD><TD VALIGN="TOP" WIDTH=271><FONT SIZE=3>Clock decrementing normally </FONT>
  515. </TD></TR>
  516. <TR><TD VALIGN="TOP" WIDTH=102></TD><TD VALIGN="TOP" WIDTH=85></TD><TD VALIGN="TOP" WIDTH=66><FONT SIZE=3>Bit 1 0</FONT>
  517. </TD><TD VALIGN="TOP" WIDTH=271><FONT SIZE=3>New time </FONT></TD></TR>
  518. <TR><TD VALIGN="TOP" WIDTH=102></TD><TD VALIGN="TOP" WIDTH=85></TD><TD VALIGN="TOP" WIDTH=66><FONT SIZE=3>Bit 1 1</FONT>
  519. </TD><TD VALIGN="TOP" WIDTH=271><FONT SIZE=3>Clock Stopped (and may be a New time) </FONT>
  520. </TD></TR>
  521. </TABLE>
  522. <P>
  523. <FONT SIZE=3>When used here bits 1 and 0 should not be set. </FONT>
  524. <H3>TimeShare_ReadTimeAddress (TimeShare_SWIBase+&09) </H3>
  525.  
  526. <TABLE>
  527. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>In</FONT></TD><TD VALIGN="TOP" WIDTH=38><FONT SIZE=3>R0 = </FONT>
  528. </TD><TD VALIGN="TOP" WIDTH=444><FONT SIZE=3>b31:b8 flags - none defined, all bits reserved </FONT>
  529. </TD></TR>
  530. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=38></TD><TD VALIGN="TOP" WIDTH=444><FONT SIZE=3>b7:b0 - for internal use, set to 0 </FONT>
  531. </TD></TR>
  532. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>Out</FONT></TD><TD VALIGN="TOP" WIDTH=38><FONT SIZE=3>R0: </FONT>
  533. </TD><TD VALIGN="TOP" WIDTH=444><FONT SIZE=3>preserved </FONT></TD></TR>
  534. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=38><FONT SIZE=3>R1 -> </FONT>
  535. </TD><TD VALIGN="TOP" WIDTH=444><FONT SIZE=3>Time data word in TimeShare module </FONT>
  536. </TD></TR>
  537. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=38><FONT SIZE=3>R2: </FONT></TD>
  538. <TD VALIGN="TOP" WIDTH=444><FONT SIZE=3>number of registered clients </FONT>
  539. </TD></TR>
  540. </TABLE>
  541. <P>
  542. <B><FONT SIZE=3>Notes</FONT></B><FONT SIZE=3>: This interface
  543. is provided to allow the fastest possible access for reading the
  544. time data word. It must not be modified. </FONT>
  545. <P>
  546. <FONT SIZE=3>The TimeShare module keeps count of the number of
  547. clients who have called this SWI for the address. When a client
  548. no longer wants to make use of the memory address it should call
  549. TimeShare_Deregister. </FONT>
  550. <P>
  551. <FONT SIZE=3>The TimeShare module will refuse to quit whilst this
  552. count is non-zero. </FONT>
  553. <H3>TimeShare_ReadTime (TimeShare_SWIBase+&0A) </H3>
  554.  
  555. <TABLE>
  556. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>In</FONT></TD><TD VALIGN="TOP" WIDTH=38><FONT SIZE=3>R0 = </FONT>
  557. </TD><TD VALIGN="TOP" WIDTH=444><FONT SIZE=3>b31:b8 flags - none defined, all bits reserved </FONT>
  558. </TD></TR>
  559. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=38></TD><TD VALIGN="TOP" WIDTH=444><FONT SIZE=3>b7:b0 - for internal use, set to 0 </FONT>
  560. </TD></TR>
  561. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=38><FONT SIZE=3>R1: </FONT></TD>
  562. <TD VALIGN="TOP" WIDTH=444><FONT SIZE=3>0, or frame rate identifier </FONT>
  563. </TD></TR>
  564. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>Out</FONT></TD><TD VALIGN="TOP" WIDTH=38><FONT SIZE=3>R2: </FONT>
  565. </TD><TD VALIGN="TOP" WIDTH=444><FONT SIZE=3>Time data word, with fps converted if R1<>0 </FONT>
  566. </TD></TR>
  567. </TABLE>
  568. <P>
  569. <B><FONT SIZE=3>Errors</FONT></B><FONT SIZE=3>: Invalid frame
  570. rate </FONT>
  571. <P>
  572. <B><FONT SIZE=3>Notes</FONT></B><FONT SIZE=3>:This may be used
  573. to either read the time data word, with no alteration or to read
  574. it after conversion to a specified frame rate. Obviously the call
  575. will return more quickly if no conversion is specified. </FONT>
  576. <H3>TimeShare_ConvertTimeToSpecified (TimeShare_SWIBase+&0B)
  577. </H3>
  578.  
  579. <TABLE>
  580. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>In</FONT></TD><TD VALIGN="TOP" WIDTH=38><FONT SIZE=3>R0 = </FONT>
  581. </TD><TD VALIGN="TOP" WIDTH=444><FONT SIZE=3>b31:b8 flags - none defined, all bits reserved </FONT>
  582. </TD></TR>
  583. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=38></TD><TD VALIGN="TOP" WIDTH=444><FONT SIZE=3>b7:b0 - for internal use, set to 0 </FONT>
  584. </TD></TR>
  585. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=38><FONT SIZE=3>R1: </FONT></TD>
  586. <TD VALIGN="TOP" WIDTH=444><FONT SIZE=3>frame rate identifier </FONT></TD>
  587. </TR>
  588. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=38><FONT SIZE=3>R2: </FONT></TD>
  589. <TD VALIGN="TOP" WIDTH=444><FONT SIZE=3>time data word in 1800fps </FONT></TD>
  590. </TR>
  591. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>Out</FONT></TD><TD VALIGN="TOP" WIDTH=38><FONT SIZE=3>R2: </FONT>
  592. </TD><TD VALIGN="TOP" WIDTH=444><FONT SIZE=3>time data word, with fps converted to frame rate from R1 </FONT>
  593. </TD></TR>
  594. </TABLE>
  595. <P>
  596. <B><FONT SIZE=3>Errors</FONT></B><FONT SIZE=3>: Invalid frame
  597. rate </FONT>
  598. <P>
  599. <B><FONT SIZE=3>Notes</FONT></B><FONT SIZE=3>: This call is used
  600. to convert from internal 1800fps time to a specified rate. This
  601. call will be used under interrupts, and is therefore re-entrant.
  602. </FONT>
  603. <H3>TimeShare_ConvertTimeFromSpecified (TimeShare_SWIBase+&0C)
  604. </H3>
  605.  
  606. <TABLE>
  607. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>In</FONT></TD><TD VALIGN="TOP" WIDTH=38><FONT SIZE=3>R0 = </FONT>
  608. </TD><TD VALIGN="TOP" WIDTH=444><FONT SIZE=3>b31:b8 flags - none defined, all bits reserved </FONT>
  609. </TD></TR>
  610. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=38></TD><TD VALIGN="TOP" WIDTH=444><FONT SIZE=3>b7:b0 - for internal use, set to 0 </FONT>
  611. </TD></TR>
  612. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=38><FONT SIZE=3>R1: </FONT></TD>
  613. <TD VALIGN="TOP" WIDTH=444><FONT SIZE=3>frame rate identifier </FONT></TD>
  614. </TR>
  615. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=38><FONT SIZE=3>R2: </FONT></TD>
  616. <TD VALIGN="TOP" WIDTH=444><FONT SIZE=3>time data word, with fps in frame rate from R1 </FONT>
  617. </TD></TR>
  618. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>Out</FONT></TD><TD VALIGN="TOP" WIDTH=38><FONT SIZE=3>R2: </FONT>
  619. </TD><TD VALIGN="TOP" WIDTH=444><FONT SIZE=3>time data word in 1800fps </FONT>
  620. </TD></TR>
  621. </TABLE>
  622. <P>
  623. <B><FONT SIZE=3>Errors</FONT></B><FONT SIZE=3>: Invalid frame
  624. rate </FONT>
  625. <P>
  626. <B><FONT SIZE=3>Notes</FONT></B><FONT SIZE=3>: This call is used
  627. to convert from a specified rate to internal 1800fps representation.This
  628. call will be used under interrupts, and is therefore re-entrant.
  629. </FONT>
  630. <H3>TimeShare_ReadClockInformation (TimeShare_SWIBase+&0D)
  631. </H3>
  632.  
  633. <TABLE>
  634. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>In</FONT></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R0 = </FONT>
  635. </TD><TD VALIGN="TOP" WIDTH=435><FONT SIZE=3>b31 - internal use </FONT></TD>
  636. </TR>
  637. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47></TD><TD VALIGN="TOP" WIDTH=435><FONT SIZE=3>b30:b8 flags - none defined, all bits reserved </FONT>
  638. </TD></TR>
  639. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47></TD><TD VALIGN="TOP" WIDTH=435><FONT SIZE=3>b7:b0 - for internal use, set to 0 </FONT>
  640. </TD></TR>
  641. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R2: </FONT></TD>
  642. <TD VALIGN="TOP" WIDTH=435><FONT SIZE=3>Clock number </FONT></TD></TR>
  643. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>Out</FONT></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R3 -></FONT>
  644. </TD><TD VALIGN="TOP" WIDTH=435><FONT SIZE=3>information structure </FONT>
  645. </TD></TR>
  646. </TABLE>
  647. <P>
  648. <B><FONT SIZE=3>Errors</FONT></B><FONT SIZE=3>: Clock Not Present
  649. </FONT>
  650. <P>
  651. <B><FONT SIZE=3>Notes</FONT></B><FONT SIZE=3>: Clock/Clock Transmitter
  652. Information Structure: </FONT>
  653. <P>
  654. <FONT SIZE=3>0 Pointer to non word-aligned ascii name, zero terminated
  655. <BR>
  656. 4 Number of frame rate identifiers following <BR>
  657. 8 Frame rate identifier etc </FONT>
  658. <P>
  659. <FONT SIZE=3>(In this instance, a frame rate identifier may have
  660. the various flag bits set that are not allowed when specifying
  661. a frame rate, so allowing information about a range of settings
  662. to be expressed economically.) </FONT>
  663. <P>
  664. <FONT SIZE=3>For Clocks where the rate may not be changed by the
  665. computer (i.e. an external clock) the number of frame rate identifiers
  666. may be returned as zero. </FONT>
  667. <H3>TimeShare_ReadClockTransmitterInformation (TimeShare_SWIBase+&0E)
  668. </H3>
  669.  
  670. <TABLE>
  671. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>In</FONT></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R0 = </FONT>
  672. </TD><TD VALIGN="TOP" WIDTH=435><FONT SIZE=3>b31 internal use </FONT></TD>
  673. </TR>
  674. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47></TD><TD VALIGN="TOP" WIDTH=435><FONT SIZE=3>b30:b8 flags - none defined, all bits reserved </FONT>
  675. </TD></TR>
  676. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47></TD><TD VALIGN="TOP" WIDTH=435><FONT SIZE=3>b7:b0 - for internal use, set to 0 </FONT>
  677. </TD></TR>
  678. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R2: </FONT></TD>
  679. <TD VALIGN="TOP" WIDTH=435><FONT SIZE=3>Clock Transmitter number </FONT></TD>
  680. </TR>
  681. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>Out</FONT></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R3 -> </FONT>
  682. </TD><TD VALIGN="TOP" WIDTH=435><FONT SIZE=3>information structure</FONT></TD>
  683. </TR>
  684. </TABLE>
  685. <P>
  686. <B><FONT SIZE=3> Errors</FONT></B><FONT SIZE=3>: Clock Transmitter
  687. Not Present </FONT>
  688. <P>
  689. <B><FONT SIZE=3>Notes</FONT></B><FONT SIZE=3>: Clock/Clock Transmitter
  690. Information Structure </FONT>
  691. <P>
  692. <FONT SIZE=3>0 Pointer to non word-aligned ascii name, zero terminated
  693. <BR>
  694. 4 Number of frame rate identifiers following <BR>
  695. 8 Frame rate identifier etc </FONT>
  696. <P>
  697. <FONT SIZE=3>(In this instance, a frame rate identifier may have
  698. the various flag bits set that are not allowed when specifying
  699. a frame rate, so allowing information about a range of settings
  700. to be expressed economically.) </FONT>
  701. <H3>TimeShare_InterpretFrameRateIdentifier (TimeShare_SWIBase+&0F)
  702. </H3>
  703.  
  704. <TABLE>
  705. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>In</FONT></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R0 = </FONT>
  706. </TD><TD VALIGN="TOP" WIDTH=498><FONT SIZE=3>b31:b8 flags - none defined, all bits reserved </FONT>
  707. </TD></TR>
  708. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47></TD><TD VALIGN="TOP" WIDTH=498><FONT SIZE=3>b7:b0 - for internal use, set to 0 </FONT>
  709. </TD></TR>
  710. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R1: </FONT></TD>
  711. <TD VALIGN="TOP" WIDTH=498><FONT SIZE=3>frame rate identifier </FONT></TD>
  712. </TR>
  713. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R2 -> </FONT>
  714. </TD><TD VALIGN="TOP" WIDTH=498><FONT SIZE=3>memory to put interpreted structure </FONT>
  715. </TD></TR>
  716. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R3: </FONT></TD>
  717. <TD VALIGN="TOP" WIDTH=498><FONT SIZE=3>size of memory, or 0 to calculate size </FONT>
  718. </TD></TR>
  719. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>Out</FONT></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R3: </FONT>
  720. </TD><TD VALIGN="TOP" WIDTH=498><FONT SIZE=3>last byte used in memory if R3 <> 0 on entry </FONT>
  721. </TD></TR>
  722. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R3: </FONT></TD>
  723. <TD VALIGN="TOP" WIDTH=498><FONT SIZE=3>number of bytes required if R3=0 </FONT>
  724. </TD></TR>
  725. </TABLE>
  726. <P>
  727. <B><FONT SIZE=3>Errors</FONT></B><FONT SIZE=3>: Not enough space
  728. provided Illegal Frame Rate Identifier </FONT>
  729. <P>
  730. <B><FONT SIZE=3>Notes</FONT></B><FONT SIZE=3>: This call has two
  731. modes of usage: </FONT>
  732. <P>
  733. <FONT SIZE=3>R2 - irrelevant and R3 = 0: </FONT>
  734. <P>
  735. <FONT SIZE=3>R3 will be returned with the size of memory needed.
  736. No data is stored anywhere. </FONT>
  737. <P>
  738. <FONT SIZE=3>R2 -> memory and R3 > 0: </FONT>
  739. <P>
  740. <FONT SIZE=3>data will be stored at R2 and R3 set to the last
  741. byte used. </FONT>
  742. <P>
  743. <FONT SIZE=3>This call is used to provided a localised string
  744. which may be used in building a menu or within a dialogue box.
  745. </FONT>
  746. <P>
  747. <FONT SIZE=3>Application developers should be cautious about simply
  748. calling this SWI for each frame rate identifier returned and then
  749. building a menu - this would be perfectly acceptable for three
  750. or four discrete frame rates, but not a range. </FONT>
  751. <P>
  752. <FONT SIZE=3>The strings returned will of course depend upon the
  753. locale in effect, but English ones could be: </FONT>
  754. <P>
  755. <FONT SIZE=3>24 fps <BR>
  756. 12.5 fps <BR>
  757. 29.97 fps <BR>
  758. 30 fps dropframe <BR>
  759. From 20 fps to 1800 fps <BR>
  760. From 0.5 fps to 1800 fps </FONT>
  761. <P>
  762. <FONT SIZE=3>As can be seen, the last three are of little use
  763. as potential menu selections. Instead, the application should
  764. provide a dialogue box allowing adjustment in 0.5fps between the
  765. low and high bounds. </FONT>
  766. <H3>TimeShare_Deregister (TimeShare_SWIBase+&10) </H3>
  767.  
  768. <TABLE>
  769. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>In</FONT></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R0 = </FONT>
  770. </TD><TD VALIGN="TOP" WIDTH=498><FONT SIZE=3>b31:b8 flags - none defined, all bits reserved </FONT>
  771. </TD></TR>
  772. <TR><TD VALIGN="TOP" WIDTH=45></TD><TD VALIGN="TOP" WIDTH=47></TD><TD VALIGN="TOP" WIDTH=498><FONT SIZE=3>b7:b0 - for internal use, set to 0 </FONT>
  773. </TD></TR>
  774. <TR><TD VALIGN="TOP" WIDTH=45><FONT SIZE=3>Out</FONT></TD><TD VALIGN="TOP" WIDTH=47><FONT SIZE=3>R0: </FONT>
  775. </TD><TD VALIGN="TOP" WIDTH=498><FONT SIZE=3>updated count of clients of TimeShare_ReadTimeAddress </FONT>
  776. </TD></TR>
  777. </TABLE>
  778. <P>
  779. <B><FONT SIZE=3>Notes</FONT></B><FONT SIZE=3>: This SWI is used
  780. to tell the TimeShare module that a client which has previously
  781. read the address of the time data word will no longer need to
  782. use it. </FONT>
  783. <P>
  784. <FONT SIZE=3>The TimeShare module will refuse to die whilst the
  785. count of clients is non-zero, so it is important that this SWI
  786. is used! </FONT><A NAME="mitter"><BR></A>
  787. <H2><A NAME="Internal">Internal</A> Clock Transmitter </H2>
  788. <P>
  789. <FONT SIZE=3>Since the functionality of the Internal
  790. Clock Transmitter is actually presented to the user by two specialised
  791. SWIs, it does not appear as a standard Clock Transmitter when
  792. all available Clock Transmitters are interrogated. </FONT></A>
  793. <H2><A NAME="Errors">Error messages</A> </H2>
  794.  
  795. <TABLE>
  796. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>0x80dd00</FONT></TD><TD VALIGN="TOP" WIDTH=104><FONT SIZE=3>ErrSchFull:</FONT>
  797. </TD><TD VALIGN="TOP" WIDTH=207><FONT SIZE=3>Interrupt schedule list is full </FONT>
  798. </TD></TR>
  799. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>0x80dd01</FONT></TD><TD VALIGN="TOP" WIDTH=104><FONT SIZE=3>ErrBadHan:</FONT>
  800. </TD><TD VALIGN="TOP" WIDTH=207><FONT SIZE=3>Bad interrupt schedule handle </FONT>
  801. </TD></TR>
  802. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>0x80dd02</FONT></TD><TD VALIGN="TOP" WIDTH=104><FONT SIZE=3>ErrBadInt:</FONT>
  803. </TD><TD VALIGN="TOP" WIDTH=207><FONT SIZE=3>Bad interrupt interval </FONT>
  804. </TD></TR>
  805. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>0x80dd03</FONT></TD><TD VALIGN="TOP" WIDTH=104><FONT SIZE=3>ErrBadFrame:</FONT>
  806. </TD><TD VALIGN="TOP" WIDTH=207><FONT SIZE=3>Invalid frame rate </FONT></TD>
  807. </TR>
  808. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>0x80dd04</FONT></TD><TD VALIGN="TOP" WIDTH=104><FONT SIZE=3>ErrWrongSize:</FONT>
  809. </TD><TD VALIGN="TOP" WIDTH=207><FONT SIZE=3>Not enough space provided </FONT>
  810. </TD></TR>
  811. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>0x80dd05</FONT></TD><TD VALIGN="TOP" WIDTH=104><FONT SIZE=3>ErrTooMany:</FONT>
  812. </TD><TD VALIGN="TOP" WIDTH=207><FONT SIZE=3>A Clock or Clock Transmitter has too high an identity number </FONT>
  813. </TD></TR>
  814. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>0x80dd06</FONT></TD><TD VALIGN="TOP" WIDTH=104><FONT SIZE=3>ErrCNotFound:</FONT>
  815. </TD><TD VALIGN="TOP" WIDTH=207><FONT SIZE=3>The Clock or Clock Transmitter specified is not available </FONT>
  816. </TD></TR>
  817. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>0x80dd07</FONT></TD><TD VALIGN="TOP" WIDTH=104><FONT SIZE=3>ErrBadCC:</FONT>
  818. </TD><TD VALIGN="TOP" WIDTH=207><FONT SIZE=3>Undefined action number </FONT>
  819. </TD></TR>
  820. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>0x80dd08</FONT></TD><TD VALIGN="TOP" WIDTH=104><FONT SIZE=3>ErrIllCC:</FONT>
  821. </TD><TD VALIGN="TOP" WIDTH=207><FONT SIZE=3>This is an external clock which may not be adjusted in this manner </FONT>
  822. </TD></TR>
  823. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>0x80dd09</FONT></TD><TD VALIGN="TOP" WIDTH=104><FONT SIZE=3>ErrNotActive:</FONT>
  824. </TD><TD VALIGN="TOP" WIDTH=207><FONT SIZE=3>This Clock Transmitter is not active </FONT>
  825. </TD></TR>
  826. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>0x80dd0a</FONT></TD><TD VALIGN="TOP" WIDTH=104><FONT SIZE=3>ErrStillInUse:</FONT>
  827. </TD><TD VALIGN="TOP" WIDTH=207><FONT SIZE=3>The module cannot die until all clients have deregistered </FONT>
  828. </TD></TR>
  829. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>0x80dd0b</FONT></TD><TD VALIGN="TOP" WIDTH=104><FONT SIZE=3>ErrWrongClock:</FONT>
  830. </TD><TD VALIGN="TOP" WIDTH=207><FONT SIZE=3>You must select this Clock first </FONT>
  831. </TD></TR>
  832. </TABLE>
  833. <P>
  834. <FONT SIZE=3>Note: The localised form of these errors may still
  835. vary. </FONT>
  836. <H1>Data <A NAME="Formats">Formats</A><A NAME="Data"> </A></H1>
  837. <P>
  838. <FONT SIZE=3>The following data structures are available through
  839. the API. </FONT>
  840. <H2><A NAME="Clock">Clock</A>/Clock <A NAME="trans">Trans</A>mitter
  841. Information Structure </H2>
  842.  
  843. <TABLE>
  844. <TR><TD VALIGN="TOP" WIDTH=64><FONT SIZE=3>+0 word</FONT></TD><TD VALIGN="TOP" WIDTH=397><FONT SIZE=3>Pointer to non word-aligned ascii name, zero terminated </FONT>
  845. </TD></TR>
  846. <TR><TD VALIGN="TOP" WIDTH=64><FONT SIZE=3>+4 word</FONT></TD><TD VALIGN="TOP" WIDTH=397><FONT SIZE=3>Number of frame rate identifiers following </FONT>
  847. </TD></TR>
  848. <TR><TD VALIGN="TOP" WIDTH=64><FONT SIZE=3>+8 word</FONT></TD><TD VALIGN="TOP" WIDTH=397><FONT SIZE=3>Frame rate identifier etc </FONT>
  849. </TD></TR>
  850. </TABLE>
  851. <P>
  852. <FONT SIZE=3>See <A HREF="#Frame" >Frame Rate Identifiers</A>.
  853. </FONT>
  854. <P>
  855. <FONT SIZE=3>The name pointer is localised - any future Clocks/Clock
  856. Transmitter which need to localise their name (as opposed to an
  857. universal name like MIDI) should use a message file of their own
  858. and look up the localised name. </FONT>
  859. <H2>Frame <A NAME="Rate">Rate</A> Identifiers<A NAME="Frame">
  860. </A></H2>
  861. <P>
  862. <FONT SIZE=3>This is a single word, combining numerical information
  863. about a frame rate with other information to aid expressing a
  864. range of values. </FONT>
  865. <TABLE>
  866. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>bit31: </FONT></TD><TD VALIGN="TOP" WIDTH=397><FONT SIZE=3>set: drop frame </FONT>
  867. </TD></TR>
  868. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>bit30: </FONT></TD><TD VALIGN="TOP" WIDTH=397><FONT SIZE=3>set: this is lowest frame rate possible </FONT>
  869. </TD></TR>
  870. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>bit29: </FONT></TD><TD VALIGN="TOP" WIDTH=397><FONT SIZE=3>set: this is highest frame rate possible </FONT>
  871. </TD></TR>
  872. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>bit28: </FONT></TD><TD VALIGN="TOP" WIDTH=397><FONT SIZE=3>set: this is not a rate, but continuously variable from 0.5 to 1800fps </FONT>
  873. </TD></TR>
  874. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>bit27: </FONT></TD><TD VALIGN="TOP" WIDTH=397><FONT SIZE=3>set: count down rather than (see SWI _ClockControl:6) </FONT>
  875. </TD></TR>
  876. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>bit26: </FONT></TD><TD VALIGN="TOP" WIDTH=397><FONT SIZE=3>set: add 0.97fps (for 29.97fps) </FONT>
  877. </TD></TR>
  878. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>bit25-bit12: </FONT></TD><TD VALIGN="TOP" WIDTH=397><FONT SIZE=3>reserved, set to 0 </FONT>
  879. </TD></TR>
  880. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>bit11-bit1: </FONT></TD><TD VALIGN="TOP" WIDTH=397><FONT SIZE=3>frame rate, max 1800, min 0.5 (with bit 0 set) </FONT>
  881. </TD></TR>
  882. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>bit0 : </FONT></TD><TD VALIGN="TOP" WIDTH=397><FONT SIZE=3>set: add 0.5 fps </FONT>
  883. </TD></TR>
  884. </TABLE>
  885. <P>
  886. <FONT SIZE=3>This word is also used to set a frame rate, but various
  887. flag bits may not be set. </FONT>
  888. <H2><A NAME="Time">Time</A> Data Word </H2>
  889. <P>
  890. <FONT SIZE=3>This is the internal time representation in 1800
  891. fps. </FONT>
  892. <TABLE>
  893. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>Bits 31-26</FONT></TD><TD VALIGN="TOP" WIDTH=142><FONT SIZE=3>Hours (0-23) </FONT>
  894. </TD><TD VALIGN="TOP" WIDTH=255></TD></TR>
  895. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>Bits 25-20</FONT></TD><TD VALIGN="TOP" WIDTH=142><FONT SIZE=3>Minutes (0-59) </FONT>
  896. </TD><TD VALIGN="TOP" WIDTH=255></TD></TR>
  897. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>Bits 19-14</FONT></TD><TD VALIGN="TOP" WIDTH=142><FONT SIZE=3>Seconds (0-59) </FONT>
  898. </TD><TD VALIGN="TOP" WIDTH=255></TD></TR>
  899. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>Bits 13-3</FONT></TD><TD VALIGN="TOP" WIDTH=142><FONT SIZE=3>Frame count (0-1799) </FONT>
  900. </TD><TD VALIGN="TOP" WIDTH=255></TD></TR>
  901. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>Bit 2</FONT></TD><TD VALIGN="TOP" WIDTH=142><FONT SIZE=3>Expanded format bit (set at 0) </FONT>
  902. </TD><TD VALIGN="TOP" WIDTH=255></TD></TR>
  903. <TR><TD VALIGN="TOP" WIDTH=73><FONT SIZE=3>Bits 1-0</FONT></TD><TD VALIGN="TOP" WIDTH=142><FONT SIZE=3>Status indication </FONT>
  904. </TD><TD VALIGN="TOP" WIDTH=255></TD></TR>
  905. <TR><TD VALIGN="TOP" WIDTH=73></TD><TD VALIGN="TOP" WIDTH=142><FONT SIZE=3>Bit 0 0
  906. <BR>
  907. Bit 0 1<BR>
  908. Bit 1 0<BR>
  909. Bit 1 1</FONT>
  910. </TD><TD VALIGN="TOP" WIDTH=255><FONT SIZE=3>Clock incrementing normally <BR>
  911. Clock decrementing normally <BR>
  912. New time <BR>
  913. Clock Stopped (and may be a New time)</FONT>
  914. </TD></TR>
  915. </TABLE>
  916. <P>
  917. <B><FONT SIZE=3>Notes</FONT></B><FONT SIZE=3>: Bit 2 is reserved
  918. for indicating the format of the time data word. While it is clear
  919. the format above is in use. Whenever it is set, some future (probably
  920. multi-word) format is in use instead - any applications which
  921. wish to act upon the structure of the time data word should check
  922. bit 2 is clear before applying their current understanding of
  923. the word's usage. </FONT>
  924. <H2>Data <A NAME="Structure">Structure</A> for Available Clocks
  925. and Available/Active Clock Transmitters </H2>
  926. <P>
  927. <FONT SIZE=3>This is an internal data structure within the TimeShare
  928. module, which other components in the TimeCode system may modify.
  929. It is also available through the API, but must not be directly
  930. modified. </FONT>
  931. <TABLE>
  932. <TR><TD VALIGN="TOP" WIDTH=54><FONT SIZE=3>+0 </FONT></TD><TD VALIGN="TOP" WIDTH=536><FONT SIZE=3>wordnumber of words following in structure </FONT>
  933. </TD></TR>
  934. <TR><TD VALIGN="TOP" WIDTH=54><FONT SIZE=3>+4 </FONT></TD><TD VALIGN="TOP" WIDTH=536><FONT SIZE=3>wordbit field for clocks/clock transmitters 0-31 (bit 0 = CT 0) </FONT>
  935. </TD></TR>
  936. <TR><TD VALIGN="TOP" WIDTH=54><FONT SIZE=3>+8 </FONT></TD><TD VALIGN="TOP" WIDTH=536><FONT SIZE=3>wordbit field for clocks/clock transmitters 32-63 (bit 0 = CT 32) etc </FONT>
  937. </TD></TR>
  938. </TABLE>
  939. <P>
  940. <FONT SIZE=3>A bit set in the bit field indicates that the component
  941. concerned is active, or available, as appropriate. </FONT>
  942. <P>
  943. <B><FONT SIZE=3>NB</FONT></B><FONT SIZE=3>: It should be noted
  944. that nobody should make ANY assumptions about this. Future versions
  945. of the TimeShare module may well size this dynamically. </FONT>
  946. <H1><A NAME="Following">Following</A> <A NAME="Industry">Industry</A>
  947. Conventions </H1>
  948. <P>
  949. <FONT SIZE=3>Materials should start at 01:00:00:00 rather than
  950. 00:00:00:00 to allow a 'pre-roll' sequence. The convention in
  951. the film and video industry is: </FONT>
  952. <P>
  953. <B><FONT SIZE=3>hh:mm:ss:ff </FONT></B>
  954. <P>
  955. <FONT SIZE=3>00:58:00:00 black and silence <BR>
  956. 00:58:30:00 bars/tone in <BR>
  957. 00:59:30:00 bars/tone out <BR>
  958. 00:59:40:00 slate <BR>
  959. 00:59:50:00 ten second countdown <BR>
  960. 01:00:00:00 fade from black, programme start </FONT>
  961. <P>
  962. <FONT SIZE=3>For more details refer to 'Audio Production Techniques
  963. for Video' by D. M. Huber, Focal Press, ISBN 0-240-80148-2. <BR>
  964. </FONT>
  965. <P>
  966. <A HREF="USERGUIDE"><IMG SRC="pics/PREV" HEIGHT="28" WIDTH="96" BORDER="0"></A>
  967. <A HREF="FRONT"><IMG SRC="pics/FRONT" HEIGHT="28" WIDTH="96" BORDER="0"></A> <A HREF="CONTENTS"><IMG SRC="pics/CONTS" HEIGHT="28" WIDTH="96" BORDER="0"></A>
  968. </BODY>
  969. </HTML>
  970.